package com.iweb.newa202104.service;

import com.iweb.newa202104.dto.QuestionInputDTO;
import com.iweb.newa202104.dto.QuestionOutputDTO;
import com.iweb.newa202104.vo.ResultVO;

import javax.servlet.http.HttpSession;

/**
 * @Author: LGZ
 * @Date: 2021/5/11 19:12
 * @Description:
 */
public interface QuestionService {
    /**
     * TODO
     * @Description 创建提问
     * @Author lgz
     * @Date 2021/5/11 19:18
     * @param questionInputDTO :
     * @return : com.iweb.newa202104.vo.ResultVO
     */
    ResultVO createQuestion(QuestionInputDTO questionInputDTO);

    /**
     * TODO
     * @Description 获取自己的提问，按时间排序
     * @Author lgz
     * @Date 2021/5/11 19:19
     * @param httpSession :
     * @return : com.iweb.newa202104.vo.ResultVO
     */
    ResultVO getQuestionByUser(HttpSession httpSession);

    /**
     * TODO
     * @Description 获取自己的提问数
     * @Author lgz
     * @Date 2021/5/18 11:33
     * @param httpSession :
     * @return : com.iweb.newa202104.vo.ResultVO
     */
    ResultVO getMyQuestionCounts(HttpSession httpSession);

    /**
     * TODO
     * @Description 获取某个分类的所有提问，按时间排序
     * @Author lgz
     * @Date 2021/5/11 19:20
     * @param categoryId :
     * @return : com.iweb.newa202104.vo.ResultVO
     */
    ResultVO getQuestionsByCategory(int categoryId);

    /**
     * TODO
     * @Description 获取所有提问，按时间排序
     * @Author lgz
     * @Date 2021/5/11 19:20
     * @return : com.iweb.newa202104.vo.ResultVO
     */
    ResultVO getAllQuestion();

    /**
     * TODO
     * @Description 采纳一个回答
     * @Author lgz
     * @Date 2021/5/11 19:21
     * @param questionInputDTO :
     * @return : com.iweb.newa202104.vo.ResultVO
     */
    ResultVO acceptResponse(QuestionInputDTO questionInputDTO);

    /**
     * TODO
     * @Description 删除提问
     * @Author lgz
     * @Date 2021/5/18 21:34
     * @param questionId :
     * @return : com.iweb.newa202104.vo.ResultVO
     */
    ResultVO deleteQuestion(HttpSession httpSession, int questionId);

    /**
     * TODO
     * @Description 给问题点赞
     * @Author lgz
     * @Date 2021/5/20 11:39
     * @param questionInputDTO :
     * @return : com.iweb.newa202104.vo.ResultVO
     */
    ResultVO giveLike(QuestionInputDTO questionInputDTO);

}
